package com.xingkeduo.business.user.service;

import com.xingkeduo.dao.database.DatabaseAccessObject;
import com.xingkeduo.pojo.query.ConsumerFileQO;
import com.xingkeduo.pojo.table.ConsumerFileTO;
import com.xingkeduo.util.pojo.exception.DataException;
import com.xingkeduo.util.tool.CommonUtil;
import com.xingkeduo.util.tool.IdentityUtil;
import com.xingkeduo.util.tool.IdentityUtil.Worker;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;

/**
 * @Description:
 * @Author:gaozifeng
 * @Date 2019/2/18 18:29
 **/
@Service
public class ConsumerFileService {
    private static final String NAMESPACE = CommonUtil.formatNamespace(ConsumerFileTO.class);
    @Resource(name = "mysqlUserMasterDao")
    private DatabaseAccessObject<ConsumerFileTO, ConsumerFileQO> dao;


    /**文件列表集合
     * @return : List<ConsumerTO>
     * @author : gaozifeng
     * @date : 2019年3月26日19:19:37
     */
    public List<ConsumerFileTO> selectConsumerFileList(ConsumerFileQO consumerFileQO) throws Throwable {
        return dao.select(NAMESPACE, consumerFileQO);
    }

    /**文件id集合
     * @return : List<ConsumerTO>
     * @author : gaozifeng
     * @date : 2019年3月26日19:19:37
     */
    public List<Long> selectConsumerFileListForid(ConsumerFileQO consumerFileQO) throws Throwable {
        return dao.selectIndex(NAMESPACE, consumerFileQO);
    }

    /** 新增文件
     * @param consumerFileTO:
     * @return : int
     * @author : gaozifeng
     * @date :2019年3月26日19:19:28
     */
    @Transactional
    public void  insertConsumer(ConsumerFileTO consumerFileTO) throws Throwable {
        consumerFileTO.initId(IdentityUtil.nextId(Worker.USER));
        consumerFileTO.setUpdatedBy(consumerFileTO.getId());
        consumerFileTO.setCreatedBy(consumerFileTO.getId());
        if (dao.insert(NAMESPACE, consumerFileTO) < 1) {
            throw new DataException(DataException.Type.FAIL, "新增消费者信息");
        }
    }

}
